linux基础篇

第一章 实操类 实用指令

1.1文件目录类

pwd:查看当前所在文件

ls:查看当前所在文件夹下内容

ls -a:显示指定目录下所有子目录与文件,包含隐藏文件。
ls -l:以列表方式显示文件的详细信息。

ls -h:配合-l以人性化方式显示文件大小。

cd [目录名]:切换文件夹

touch [文件名]:如果文件不存在,新建文件

mkdir [目录名]:创建目录

rmdir[目录名]:删除空目录

rm[文件名]:删除文件名

使用rm要小心因为删除后文件不可以恢复

选项 含义
-f 强制删除,忽略不存在的文件,无需提示
-r 递归的删除目录下的文件的内容,删除文件夹时候,必须带此参数

cp [文件名] 或 [目录名]

  • 常用选型

    -r:递归复制整个文件夹

  • 案例1:将/home/aaa.txt 拷贝到 /home/bbb目录下:

  • 案例2:将/home/test 整个目录copy到 /home/zwj/

clear :清屏

cat:以只读的格式打开文件

more:分屏显示文件内容,每次只显示一页内容

less:和上面类似,但对于大型文件具有较高的效率

head:用于显示文件开头部分内容

tail:用于输出文件尾部的内容

echo:输出内容到控制台

ln:软连接,类似于windows的快捷方式

1.2搜索查找类

find

从指定的目录下递归的查找各个子目录,将满足条件的文件或者目录显示在终端上

选项 功能
-name 按照指定文件名查找文件
-user 查找属于指定用户的所有文件
-size 按照指定文件大小查找文件

案例1:按照文件名,根据名称查找/home目录下的hello.txt

案例2:按照拥有者,查找/opt目录下的,用户名称为nodody的文件

案例3:查找Linux系统下大于20M的文件

案例4:查找 / 目录下所有的.txt的文件

image-20200909213030659

locate:

快速定位文件路径

特别说明:由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库

案例:定位hello.txt文件的所在目录

在这里插入图片描述

grep:过滤查找

管道符,”|”,表示将前一个命令的处理结果输出传递给后面的命令处理

-n 显示匹配行和行号
-i 忽略字母大小写

案例1:请在hello.txt文件中,查找“yes“所在行,并且显示行号

在这里插入图片描述

1.3压缩和解压类

以后补上,看尚硅谷老师的课

1.4 Vim&查看文章

  • 查看的常用命令
    空格键:显示下一屏
    Enter键:一次滚动一行
    b:回滚一屏
    f:前滚一屏
    q:退出
    Tab:自动补全(若有歧义在按一下,提示可能有的目录)
    ctrl+c:退出选择,重新回到终端

  • 通配符的使用
    *:代表任意一个字符
    ?:代表任意一个字符,至少一个
    []:表示可以匹配字符组的任意一个
    []:匹配a,b,c中的任意一个
    [a-f]:匹配a到f中的任意一个

    例子:LS 5.txt (也可以不加后缀名); LS \3*

    ctrl+s:保存文件(文件如多有一个*说明这个文件没有被保存)
    man是manual的缩写,是linux提供的手册

第二章 实操类 进程管理

ps:查看进程的使用指令

一般使用的参数是 ps -aux

PID 进程识别号
TTY 终端机号
TIME 此进程所消耗的CPU时间
CMD 正在执行的命令或者进程名

ps -a:显示当前终端的所有进程信息

ps -u:以用户的格式显示进行信息

ps -x:显示后台进程运行的参数

ps -ef:以全格式显示当前的所有进程

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

kill:终止进程

kill [进程号],killall,也可以使用通配符

-9:表示强迫进程立即停止

案例1:踢掉某个非法登录用户

在这里插入图片描述

案例2:终止远程登录服务sshd,在适当时候再次重启sshd服务

image-20200909221008105

案例3:终止多个gedit编辑器

killall gedit

案例4:强制杀掉一个终端

在这里插入图片描述

pstree:查看进程树

-p:显示进程PID

-u:显示进程的所有属性

在这里插入图片描述

Service:服务管理

服务本质就是进程,只是运行在后台,通常会监听某个端口,等待其他程序请求,比如(mysql,sshd 防火墙等),因此我们又称为守护线程,是Linux中非常重要的知识点

在这里插入图片描述

在centos7.0以后,不在使用service,而是systemctl

使用案例:查看当前防火墙状态,关闭防火墙和重启防火墙

在这里插入图片描述

/etc/init.d/服务名称

在这里插入图片描述

服务的运行级别:

image-20200909223200299

chkconfig为每个服务的各个运行级别设置自启动/关闭

在这里插入图片描述

在这里插入图片描述

top动态监控进程

top与ps命令很相似,都是用来显示正在执行的进程,top的不同在于可以更新正在运行的进程

-d 指定top命令每隔几秒钟更新,默认是3秒
-i 使top不显示闲置和僵死的进程
-p 通过指定监控进程ID来仅仅监控某个进程
-u 后加用户名即可查看指定的用户

监控特定用户:

在这里插入图片描述

输入top后,回车查看进程,然后输入“k”回车,在输入要结束的进程ID号

image-20200909224941476

netstat查看系统网络情况

-an 按照一定排列顺序输出
-p 显示哪个进程在调用

查看系统所有的网络服务

在这里插入图片描述

查看服务名为sshd的服务信息

在这里插入图片描述

之前查询端口是否被占用一直搞不明白,问了好多人,终于搞懂了,现在总结下:

1.netstat -anp |grep 端口号

如下,我以3306为例,netstat -anp |grep 3306(此处备注下,我是以普通用户操作,故加上了sudo,如果是以root用户操作,不用加sudo即可查看),如下图1:

img

​ 图1

图1中主要看监控状态为LISTEN表示已经被占用,最后一列显示被服务mysqld占用,查看具体端口号,只要有如图这一行就表示被占用了。

2.netstat -nultp(此处不用加端口号)

该命令是查看当前所有已经使用的端口情况,如图2:

img

软连接和硬链接

软连接:(符号连接)等同于Windows的快捷方式

  • 创建一个软连接
    注意创建的语法:ln -s是必须的,然后后面跟一个目标文件夹,最后是一个当前目录的软连接名。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    [root@server6 ~]# ln -s test_chk/ test_chk_ln
    [root@server6 ~]# ll
    总用量 84
    -rw-------. 1 root root 1257 6月 16 01:17 anaconda-ks.cfg
    drwxr-xr-x. 25 root root 4096 11月 1 10:28 azkabanJob
    -rw-r--r--. 1 root root 67322 11月 4 10:24 azkabanJob.zip
    drwxr-xr-x. 4 root root 37 7月 13 11:01 hadoop_temp
    -rw-r--r--. 1 root root 54 7月 4 14:11 HelloLinux.txt
    drwxr-xr-x. 2 root root 22 11月 4 10:41 test_chk
    lrwxrwxrwx. 1 root root 9 11月 4 10:42 test_chk_ln -> test_chk/
    -rw-r--r--. 1 root root 67 10月 8 15:52 zookeeper.out
    [root@server6 ~]# cd test_chk_ln/
    [root@server6 test_chk_ln]# ll
    总用量 4
    -rw-r--r--. 1 root root 12 11月 4 10:41 test.txt
    [root@server6 test_chk_ln]# cat test.txt
    hello spark
    [root@server6 test_chk_ln]# ll
    总用量 4
    -rw-r--r--. 1 root root 12 11月 4 10:41 test.txt
    [root@server6 test_chk_ln]# cat test.txt
    hello spark

    可以看到软连接文件前面是l其他都是-,-代表文本文件,d代表是一个文件夹,而l就是连接文件

硬连接:ln 源文件名 连接文件名

硬链接:就好像是copy,但是在linux里面就只有一份,这个文件好像多了几条命,

$$ —- \mathcal{End} —- $$

# linux
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×